1. Field of the Invention
This invention relates to managing computer jobs and more particularly relates to managing computer jobs with prerequisite jobs.
2. Description of the Related Art
Many computers such as mainframe computers have the ability to run jobs submitted by a user or automatically. Submitting a job in such a fashion may be termed submitting a batch job. A computer job may include execution of lines of computer code in a file to perform one or more tasks such as updating accounts, executing functions, retrieving data, storing data and the like. Jobs may be submitted one at a time or a group of jobs may be submitted.
One job may depend on another job having been successfully completed prior to submission. For example, a first job may execute a function to create a numerical value associated with a variable. A second job may require the numerical value assigned to the variable as input and may fail or have an inaccurate output without successful completion of the first job. A job that depends on completion of another job may be termed a dependent job and the job that must be successfully completed may be termed a prerequisite job. A mainframe computer operating the z/OS® operating system is an example of a computer that may execute batch jobs and that may have prerequisite and dependent jobs. Jobs may be submitted using the job control language (“JCL”) or an equivalent batch job submission program.
Submitting jobs one at a time is one way to ensure that a dependent job that has one or more prerequisite jobs is not submitted until the prerequisite jobs have successfully completed. This process is problematic, however, since a user must continually monitor execution of the submitted jobs to determine when a prerequisite job is completed to be able to then submit jobs dependent on completion of the prerequisite jobs. In addition, a user must continually track the dependencies of the jobs.
Submitting a group of jobs in a batch process has the advantage that many jobs can be submitted at one time. Submitting a group of jobs, which may be called a job grouping, is problematic, however, because the user cannot guarantee that prerequisite jobs of the job grouping will be successfully completed before dependent jobs. For example, if a prerequisite job fails, a dependent job may also fail. In a multitasking environment, submitting a job grouping may not guarantee that the jobs listed in the job grouping will be executed in the order the jobs are listed. If the jobs are processed in parallel, a prerequisite job may not be completed before submission of a dependent job.
From the foregoing discussion, it should be apparent that a need exists for an apparatus, system, and method that manage jobs with one or more prerequisite jobs. Beneficially, such an apparatus, system, and method would allow creation of a task list with job groupings, would allow creation of a job grouping that lists dependent jobs and associated prerequisite jobs, would submit a dependent job after successful completion of all prerequisite jobs of the dependent job, and would allow monitoring of the execution of jobs in a job grouping.